class Solution {
    public int singleNumber(int[] nums) {
          int ret = 0 ; 
          // 计算32位比特位,所对应的值
          for(int i=0 ; i < 32 ; i ++){
              int sum = 0 ; 
              // 用sum 计算在这一位上 所有的和, 用这个 和 % 3, 就是这个单独数在这一位的值 ;
              for(int x : nums){
                 if( ((x>>i)&1)  == 1){
                    sum ++ ;
                 }
              }
              sum %= 3 ;
               // ret 只需要修改值为1的位即可, 0的改不改都一样
              if(sum ==1){
                ret |= 1<<i; 
              }
          }
         return ret ;

    }
}